import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import analizador_sintactico.*;
import analizadorlexico.ErrorLexico;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintStream;
import tabla_de_simbolos.*;

public class Principal {

	private static String fuente;
	
	public static void main(String[] args) throws FileNotFoundException, IOException 
	{
            
		if (args.length > 0) {
                    fuente = args[0];			
		}
		else
                    throw new Error("Se debe pasar como parametro el archivo con el codigo fuente.");

		
                 
                 
                AnalizadorSintactico analizador = new AnalizadorSintactico(fuente,"./out.o");
                //Runtime.getRuntime().exec("java -jar ./CeIVM-cei2011.jar ./out.o -v > ./salida.txt");
                try{
                   
                    analizador.analizarSintaxis();
                    generador_de_codigo.GeneradorDeCodigo.cerrarArchivo();
                }
                catch(ErrorSintactico e){
                    System.out.println(e.getInfo());
                }
                catch(ErrorLexico e){
                    System.out.println(e.getInfo());
                }
                catch(ErrorSemantico e){
                    System.out.println(e.getInfo());
                }
	
            
        
         
              
    }
}